package lol.clann.minecraft.exampleplugin;

import lol.clann.minecraft.springboot.adapter.bukkit.command.annotation.Command;
import lol.clann.minecraft.springboot.adapter.bukkit.command.annotation.CommandDefine;
import lol.clann.minecraft.springboot.adapter.bukkit.command.annotation.Sender;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.springframework.stereotype.Service;

import java.io.IOException;

/**
 * 插件包路径下,被@Service注解的类,会作为一个单例bean,交给spring进行管理
 *
 * @author pyz
 * @date 2019/5/6 11:57 PM
 */
@Service
// 这个注解定义了一个指令(example),指令会由SBP注册到服务器里
@CommandDefine(name = "example", description = "样例指令", aliases = "ep")
public class ExampleCommand {
    /**
     * 这个注解定义了一个具体的指令
     *
     * showArgs会显示在指令的帮助信息里,是给玩家看的
     *
     * des指令描述
     *
     * 几个only设置意思很明显
     *
     * @param sender  @Sender注解的参数是指令发送者
     * @param message
     * @throws IOException
     */
    @Command(showArgs = "broadcast <message>", des = "发送广播消息", onlyConsole = true, onlyPlayer = false, onlyOp = true)
    private void broadcase(@Sender CommandSender sender, String message) throws IOException {
        Bukkit.broadcastMessage(message);
    }
}
